/**
 * 批量注册modules里的组件，
 * 只匹配当前目录或者一个子目录下的vue文件，再子级则不导入
 *
 * 这里的组件会全局注册，需防止与全局组件冲突
 */
export default {
  install(app) {
    const requireModules = import.meta.glob(["./*.vue", "./*/*.vue"], {
      import: "default",
      eager: true,
    });

    for (const path in requireModules) {
      const result = path.match(/\.\/(?:\w+\/)?(\w+).vue$/);
      if (result && !app.component(result[1])) {
        const modulesConent = requireModules[path];
        app.component(result[1], modulesConent);
      }
    }
  },
};
